<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>3304. 找出第 K 个字符 I</title>
</head>
<body>
  <script>
  //     Alice 和 Bob 正在玩一个游戏。最初，Alice 有一个字符串 word = "a"。

  // 给定一个正整数 k。

  // 现在 Bob 会要求 Alice 执行以下操作 无限次 :

  // 将 word 中的每个字符 更改 为英文字母表中的 下一个 字符来生成一个新字符串，并将其 追加 到原始的 word。
  // 例如，对 "c" 进行操作生成 "cd"，对 "zb" 进行操作生成 "zbac"。

  // 在执行足够多的操作后， word 中 至少 存在 k 个字符，此时返回 word 中第 k 个字符的值。

  // 注意，在操作中字符 'z' 可以变成 'a'。

  

  // 示例 1:

  // 输入：k = 5

  // 输出："b"

  // 解释：

  // 最初，word = "a"。需要进行三次操作:

  // 生成的字符串是 "b"，word 变为 "ab"。
  // 生成的字符串是 "bc"，word 变为 "abbc"。
  // 生成的字符串是 "bccd"，word 变为 "abbcbccd"。
  // 示例 2:

  // 输入：k = 10

  // 输出："c"

  

  // 提示：

  // 1 <= k <= 500

  /**
 * @param {number} k
 * @return {character}
 */
var kthCharacter = function(k) {
    let strList = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; // 初始化字符串列表，包含第一个26个英文字母
    let word = 'a';
    while (k > word.length) {
      let newStr = '';
      for (let i = 0; i < word.length; i++) {
        newStr += word[i];
        if (word[i] === 'z') {
          newStr += 'a'; // 如果当前字符是 'z'，则添加 'a'
        } else {
          newStr += strList[strList.indexOf(word[i]) + 1]; // 否则添加下一个字符
        }
      }
      word = newStr; // 将新字符串追加到原始字符串
    }
    return word[k - 1]; // 返回第 k 个字符（注意 k 是从 1 开始的，所以需要减去 1）
};
  </script>
</body>
</html>